---
id: unit2
title: 第二章 关系数据库
---

## 关系数据库概述
关系数据库的基本特征是使用关系数据模型组织数据。

常用的关系数据库管理系统有FoxPro、Access以及开源项目 MySQL等。

## 关系数据模型
关系模型中常用的关系操作包括查询（Query）操作和插入（Insert）、删除（Delete）、修改（Update）操作两大部分。

关系操作的特点是集合操作方式，即操作的对象和结果都是集合。这种操作方式也称为一次一集合的方式。

关系数据语言可以分为三类：关系代数语言、关系演算语言以及兼具两者双重特点的语言。

关系操作的能力表示方法有两种：  
（1）代数方式。主要有关系代数，它是通过对关系的操作来表达查询要求的方式。  
（2）逻辑方式。主要有关系演算，它是用谓词来表达查询要求的方式。关系演算按谓词变元的基本对象是元组变量还是域变量，分为元组关系演算和域关系演算。关系代数、元组关系演算和域关系演算三种语言在表达能力上是完全等价的。

数据库的数据完整性是指数据库中数据的正确性、相容性和一致性。

## 关系数据库的规范化理论
数据冗余是指同一数据被反复存储的情况。

数据的插入操作异常是指应该插入到数据库中的数据不能执行插入操作的情形。

“不好”的关系模式可能会存在如下问题：  
（1）数据冗余。  
（2）更新异常。  
（3）插入异常。  
（4）删除异常。  

［单项选择题、综合题］关系数据库中的关系需要满足一定的要求，不同程度的要求称为不同的范式（NF）。满足最低要求的称为第一范式，简称1NF，这是最基本的范式；在第一范式的基础上进一步满足一些新要求的称为第二范式（2NF）；以此类推，再进一步的范式是第三范式（3NF）及其改进形式BCNF。
规范化指一个低一级范式的关系模式通过模式分解转换为若干个高一级范式的关系模式的集合的过程。在关系数据库系统中，所有的关系结构都必须是规范化的，即至少是第一范式的。
实际应用中的很多数据格式都不是第一范式的，因此在数据库逻辑设计中需要将非规范化的结构转换为规范化的关系；同时为了减少数据库中的数据冗余和增强数据的易操作性，以及消除数据插入、删除异常等现象，要求数据库中的每个关系都必须满足一定的规范条件，以结构更单纯、更规则的关系逐步取代原有关系。

1．第一范式   
设R为任一给定关系，如果R中每个列与行的交点处的取值都是不可再分的基本元素，则R为第一范式。
第一范式是一个不含重复组的关系，其中不存在嵌套结构。不满足第一范式的关系为非规范关系。
非规范关系转化为1NF可以通过重写关系中属性值相同部分的数据来实现。  
2．第二范式  
设R为任一给定关系，若R为1NF，且其所有非主属性都完全函数依赖于候选关键字，则R为第二范式。  
3．第三范式  
设R为任一给定关系，若R为2NF，且其每一个非主属性都不传递函数依赖于候选关键字，则R为第三范式。  
4.BCNF  
设R为任一给定关系，X、Y为其属性集，F为其函数依赖集，若R为3NF，且其F中所有函数依赖X→Y（Y不属于X）中的X必包含候选关键字，则R为BCNF。
BCNF解决了3NF中出现的插入及删除操作异常等问题，若R中每一函数依赖的决定因素都包含一个候选关键字，则R为BCNF。决定因素可以是单一属性或组合属性。